﻿using System.Collections.Generic;
using System.Threading.Tasks;
using SDCloudSolution.SDCloud.Entities;
using SDCloudSolution.SDCloud.Entities.Models;

namespace SDCloudSolution.SDCloud.BusinessLayer.Model.Interfaces
{
    public interface IModelRunComponent
    {
        Task<ModelRunEntity> GetByIdAsync(int modelRunId);

        Task<EntityCollection<ModelRunEntity>> FindByModelIdsAsync(IEnumerable<int> modelIds, Paging paging);

        Task<EntityCollection<ModelRunEntity>> FindByModelIdsAndStatusesAsync(IEnumerable<int> modelIds, IEnumerable<ModelRunStatus> statuses, Paging paging);

        Task<ModelRunEntity> FindLastModelRunAsync(int modelId);

        Task<ModelRunEntity> EnquequeModelRunAsync();

        Task UpdateModelRunAsync(ModelRunEntity entity);

        Task InsertModelRunAsync(ModelRunEntity entity);
    }
}
